package com.hotpot.comm.xss;

import com.hotpot.comm.config.exception.HotPotException;
import com.xiaoleilu.hutool.util.StrUtil;

/**
 * 描述:SQL过滤
 * @author myx
 * @date 2017年7月11日 下午4:45:12
 */
public class SQLFilter {

	/**
	 * 方法描述：SQL注入过滤
	 * @param str 待验证的字符串
	 * @return
	 * @return: String
	 * @throws Exception 
	 */
    public static String sqlInject(String str){
        if(StrUtil.isEmpty(str)){
            return null;
        }
        //去掉'|"|;|\字符
        str = str.replace("'", "");
        str = str.replace("\"", "");
        str = str.replace(";", "");
        str = str.replace("\\", "");

        //转换成小写
        str = str.toLowerCase();

        //非法字符
        String[] keywords = {"master", "truncate", "insert", "select", "delete", "update", "declare", "alert", "drop"};

        //判断是否包含非法字符
        for(String keyword : keywords){
            if(str.indexOf(keyword) != -1){
                throw new HotPotException("包含非法字符");
            }
        }

        return str;
    }
}
